home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////////////////////
- //
- // Hector.hxx - This is the Hector 1600 CPU class
- //
- // By: Bradford W. Mott
- // December 2,1993
- //
- ///////////////////////////////////////////////////////////////////////////////
-
- #ifndef HECTOR_HXX
- #define HECTOR_HXX
-
- #include "BasicCPU.hxx"
- #include "BasicDevice.hxx"
-
- #include "ControlUnit.hxx"
-
- ///////////////////////////////////////////////////////////////////////////////
- // The Hector 1600 class
- ///////////////////////////////////////////////////////////////////////////////
- class Hector : public BasicCPU {
- private:
- DataPath* data_path; // Hector's data path
- ControlUnit* control_unit; // Hector's control unit
-
- public:
- Hector(AddressSpace*); // Constructor
- virtual ~Hector(); // Destructor
-
- // Execute a single instruction: On success it returns NULL, on
- // failure it returns a pointer to the reason.
- const char* ExecuteInstruction(String& trace_record, int trace_flag);
-
- // Handle an interrupt request from a device
- void InterruptRequest(BasicDevice* device, int level);
-
- // Preform a system reset
- void Reset();
-
- // Return the name of the program counter register
- char* const NameOfProgramCounter();
-
- // Return the value of the program counter register
- unsigned long ValueOfProgramCounter();
-
- // Set the named register to the given value
- void SetRegister(String name, String hex_value);
-
- // Clear the statistics
- void ClearStatistics();
-
- // Build the register list for the RegisterInformationList object
- void BuildRegisterInformationList(RegisterInformationList*);
-
- // Build the statistics list for the StatisticalInformationList object
- void BuildStatisticalInformationList(StatisticalInformationList*);
- };
- #endif
-
-